Previous: Using Regi, Up: Configuring the Citation Engine [Contents][Index]
As mentioned earlier, Supercite uses various frames to perform
certain jobs such as mail header information extraction and mail
header nuking. However, these frames are not available for you to
customize, except through abstract interfaces such as
sc-nuke-mail-header, et al.
However, the citation frames Supercite uses provide a lot of
customizing power and are thus available to you to change to suit
your needs. The workhorse of citation is the frame contained in
the variable sc-default-cite-frame. This frame
recognizes many situations, such as blank lines, which it
interprets as paragraph separators. It also recognizes previously
cited nested and non-nested citations in the original message. By
default it will coerce non-nested citations into your preferred
citation style, and it will add a level of citation to nested
citations. It will also simply cite uncited lines in your
preferred style.
In a similar vein, there are default frames for
unciting and reciting, contained in the
variables sc-default-uncite-frame and
sc-default-recite-frame respectively.
As mentioned earlier (see Recognizing
Citations), citations are recognized through the values of
the regular expressions sc-citation-root-regexp, et
al. To recognize odd styles, you could modify these variables, or
you could modify the default citing frame. Alternatively, you
could set up association lists of frames for recognizing specific
alternative forms.
For each of the actions—citing, unciting, and
reciting—an alist is consulted to find the frame to use
(sc-cite-frame-alist,
sc-uncite-frame-alist, and
sc-recite-frame-alist respectively). These frames
can contain alists of the form:
((infokey (regexp . frame) (regexp . frame) …) (infokey (regexp . frame) (regexp . frame) …) (…))
Where infokey is a key suitable for
sc-mail-field, regexp is a regular
expression which is string-match’d against the
value of the sc-mail-field key, and frame
is the frame to use if a match occurred. frame can be
a variable containing a frame or a frame in-lined.
When Supercite is about to cite, uncite, or recite a region, it consults the appropriate alist and attempts to find a frame to use. If one is not found from the alist, then the appropriate default frame is used.
Previous: Using Regi, Up: Configuring the Citation Engine [Contents][Index]